package com.shujia.Day07;

import java.util.Arrays;

public class Demo08Arrays {
    public static void main(String[] args) {
        /*
            TODO Arrays类使用
                作用：针对数组进行操作的工具类
                toString(byte[] a)
                    返回指定数组的内容的字符串表示形式。
         */
        int[] ints = {2,3,4};
        Arrays.toString(ints);
        Arrays.binarySearch(ints,3);
        // ctrl + alt + <- 返回进入代码的上一步
        /*
            public static String toString(int[] a) {
                // 如果其内存地址为null
                if (a == null)
                    return "null";  // 返回字符串null
                // 数组的最大下标数
                int iMax = a.length - 1;
                // 当长度为0时直接返回 []
                if (iMax == -1)
                    return "[]";
                // 构建字符串对象
                StringBuilder b = new StringBuilder();
                // 先添加左括号
                b.append('[');
                // 拼接逻辑
                for (int i = 0; ; i++) {
                    b.append(a[i]);
                    if (i == iMax)
                        return b.append(']').toString();
                    b.append(", ");
                }
            }
         */

        /*
            private static int binarySearch0(int[] a, int fromIndex, int toIndex,
                                     int key) {
                // low 开始下标
                int low = fromIndex;
                // high 结束下标
                int high = toIndex - 1;

                while (low <= high) {
                    int mid = (low + high) >>> 1;
                    int midVal = a[mid];

                    if (midVal < key)
                        low = mid + 1;
                    else if (midVal > key)
                        high = mid - 1;
                    else
                        return mid; // key found
                }
                return -(low + 1);  // key not found.
            }
         */
    }
}
